Communication network having modular switches that enhance data throughput

ABSTRACT

An architecture, system and method are provided for efficiently transferring packets of data across a communication network. The communication network is structured such that there are hierarchical levels of high speed switches existing throughout the network. Distributed routing of packets is achieved by comparing identification numbers of only select switches with the destination address on a field-by-field basis. Not all fields need be compared at all switches. Once routing is achieved within the structured network, transfer to a destination termination device occurs through a single look-up table only when departing the network if multiple termination devices are present at that exit node. The routing operation between termination devices can therefore be achieved using a single mapping operation (if more than one termination device must be selected) and is backward compatible with devices external to the network and protocols used by those devices. An additional protocol layer specific to the structure is wrapped onto the incoming packet protocol using a series of read cycles to a memory which temporarily receives the incoming protocol. The sequence of reads can be quickly achieved without using conventional packet processors and the delayed access times normally attributed to those processors. Each switch thereby serves as a traffic manager, having registers that are configured so as to allow the traffic manager to direct packets of data from an input port to an output port in the quickest, most efficient manner without having to decode the entire destination address or requiring time-consumptive routing tables.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to a communication system (“network”) and, moreparticularly, to a network that employs a modular form of switch whichoperates to quickly route data among nodes of the network. The switchhas the awareness of its position relative to other switches or nodeswithin the network. The switch may include buffers and decoders whichwrap the internet protocol (“IP”) identification addresses through aseries of fast read operations, or simply pass the wrapped IP addressthrough the network depending on whether the switch is configured as anend switch, an intermediate switch or a pass-through switch

2. Description of the Related Art

A communication network is generally regarded as an interconnected setof subnetworks or subnets. The network can extend over localized subnetsas an intranet, or can extend globally as an internet between one ormore intranets. A communication network can therefore forward datawithin a localized network between termination devices extending toalmost anywhere around the world. The termination devices include anydata entry/retrieval system (e.g., telephone or computer), and a networkincludes a local and/or global interconnection of termination devicesconfigured on one or more subnets.

The basic underpinnings of network operation is the various protocolsused to communicate between termination devices. A popular foundationfor those protocols is the Open System Interconnect (“OSI”) model. Usingthat model or a derivative thereof, protocols can be developed whichwork in concert with each other. A popular communication protocolincludes the Transmission Control Protocol (“TCP”) and the InternetProtocol (“IP”). Protocols such as TCP/IP determine how the terminationdevices will communicate with each other over a network configured withor without internet connection.

Many popular protocols including TCP/IP deliver data across the networkin the form of a packet. Each packet of a particular message may be sentacross different routes of the network at the same time and thenreassembled at the proper termination device. In order to ensure thepackets are properly received, certain layers of the OSI protocol stackwill wrap the data before the packet is sent across the network. Forexample, TCP can divide data into segments which are then placed into,for example, IP datagrams having a header which includes the IP addressof the originating and receiving termination devices. The IP datagramand header is, therefore, a wrapped IP which gets further wrapped whentransferring the IP wrapper from the network layer to the data link andphysical layers. For example, the IP datagram can be further wrappedusing a Point-to-Point Protocol (“PPP”), a popular such protocol beingthat which follows the Ethernet specification at the physical layer.Thus, it is not until the IP has been wrapped possibly several timeswill be TCP be forwarded across the network.

Coupled between subnets of a network are various classes of devices,including bridges, routers, and switches. Bridges and switches for themost part operate primarily in hardware and within the domain of thedata link layer. Legacy routers, on the other hand, operate within thenetwork layer and can be programmed and reconfigured to intelligentlyforward packets across the network according to the most optimal routingpath. Although the distinction has become somewhat blurred with modernday network layer switches and bridges, it is still the primary intentthat a switch and bridge be employed mostly in hardware. Based onconfiguration of the switch or bridge, all data packets received by aparticular input port are routinely sent to any particular output portor ports. This operation can be quickly repeated each time a packet isreceived.

While switches are relatively fast and can send data from an input portto an output port with very little delay or lag time, switches do nothave the capability to adapt to change in traffic conditions as dorouters. Because routers can easily adapt to avoid traffic bottlenecks,routers employ look-up tables and fairly complex routing algorithms.Typical routers are based on a packet processor. The processor can beprogrammed to determine the most optimal connection between input andoutput ports of the router. Coupled to the processor is a memory bus andassociated system memory, whereby routing tables can be stored in thesystem memory and are periodically fetched by the processor whenever arouting decision is to be made. Thus, when a packet is received on oneport of the router, the processor will execute a look-up operation byfetching the appropriate table information from system memory. Mostrouting tables are dynamic, in that they constantly change as networktraffic and conditions change, so that the processor can interconnectthe ports in a way that is most efficient at that time. Dynamic routingtables can be built and re-built using various routing protocols,popular such protocols include Routing Information Protocol (“RIP”) andExterior Gateway Protocol (“EGP”).

Periodically programming the routing tables may mean that one router ona network will not know the location of the physically closest router orits placement within the network. The router will simply route based onits existing routing table and the resulting look-up outcome. Such asystem can be considered a non-relative or non-deterministic routertopography. Non-deterministic routers tend to rely on the number of hops(i.e., the number of routers or gateways) when determining the mostoptimal routing path. Thus, while a router may know the number ofadditional routers on a given path, it does not necessarily know or havea link to the identity of those routers.

In most modem networks, a packet will travel more than 10 or 20 hopsbefore arriving at its destination. As defined herein, a hop isequivalent to a traversal of a router or address translator. Morespecifically, a hop is defined as an operation that invokes a look-up ortranslation operation. When traveling across a network, a packet may besent across numerous look-up or translation tables, and also throughnumerous switches, before arriving at its destination. It is generallyrecognized that transmission latency is lessened, and transmissionbandwidth increased, if the number of hops is reduced. Therefore, it isdesirable that the number of hops from one termination device to anothertermination device be minimal. This is due, in part, to thetime-consumptive look-up (or address translation/modification) procedureperformed by each router. Furthermore, since a particular router willnot necessarily know the placement of all other routers of a network,each look-up table must include identification numbers or addresses foreach of the other routers within the network - even those not within theoptimal routing path. The destination address is compared against eachof those identification numbers for each routing operation. If a networkis quite large, the access times needed to perform a look-up from thepacket processor to the system memory can be correspondingly long.

This problem is compounded with the advent of high speed networks of onegigabits per second (Gb/s) or higher. Look-up techniques needed torender forwarding decisions on rather large look-up tables drasticallyreduces the benefits of using high speed networks. Many terminationdevices use high speed physical media, such as Ethernet. Moreover,subnet loops which interconnect localized devices can use even higherspeed signals such as, for example, Synchronous Optical Networks(“SONETs”).

If the IP packets enter the input port of a router more quickly thanthat router can process those packets, the packets are sent to an inputqueue. The router processes packets from the queue in the order in whichthey are received. If the number of packets received exceeds thecapacity of the queue, packets may be lost and may need to be re-sent.If the comparison between the IP destination and the routing table takesa significant amount of time, then it may be likely that numerouspackets may be lost. Frequency of lost data would increase when burstsof data are being sent. The time needed to re-send packets deleteriouslyhinders the overall throughput of the network.

It would be of benefit to introduce an improved switch having switchingspeeds of a conventional switch yet also having the adaptability of arouter. The improved switch would avoid the throughput constraints of aconventional packet processor and system memory interface and, moreimportantly, the detriments of an extensive look-up table. The desiredswitch would be even more beneficial if it could maintain backwardcompatibility with the OSI model, protocols of that model, and addressresolution used by various Address Resolution Protocols (“ARP”). Stillfurther, the improved switch should desirably be used in an overallnetwork that is deterministic as to the relative placement of eachswitch within that network. Thus, the switch could determine if itshould wrap (or strip) incoming packets as an end switch or shouldpass-through packets as an intermediate or pass-through switch, bothswitches advantageously performing those functions with minimal timedelay.

SUMMARY OF THE INVENTION

The problems outlined above are in large part solved by a structurednetwork, an enabling distributed routing mechanism, an addressingmechanism used within that network, and forwarding/directing devices(“modules”) topologically related to one another based on their positionwithin the network. The modules, due to an awareness of their positionor location with respect to the structured network, allow adaptive fastforwarding of packets across the network. The modules represent animprovement over conventional switches and/or routers. Instead ofstatically routing packets in the same manner each time, as inconventional switches, the modules include some features of conventionalrouters, yet without the detriments of routers. The modules can forwardand/or direct packets of data relatively fast (similar to conventionalswitches), and can dynamically change the forwarding path based onactivity within the network. For sake of brevity in its description, themodules perform a hybrid of a switch/route function and are henceforthreferred to as switches based on the speed at which they forward packetsof data, and that they perform a selection function applicable toswitches in general. However, it is recognized that the pre-sentswitches are altogether dissimilar from conventional switches, and arealso dissimilar from conventional routers.

The network can be made up of numerous switches extending betweentermination devices. Each switch performs fast deterministic switchingof packets across the network based on conditions of the network. Thenetwork can be placed within only a portion of a conventional network, asubnet of which is coupled to one or more termination devices.Regardless of where it is configured, the pre-sent network includes oneor more topological levels of switches that are structurally related toone another. Each switch within the network is assigned a uniqueidentification number possibly corresponding to the hierarchical levelof the network topography that can be ascertained within a given fieldattributed to that level. For example, the most significant field ofbits may be allocated to the highest hierarchical level of switches,followed by the next most significant field allocated to the nexthighest level of switches. With each level of hierarchy, structure isprovided. Structure is also provided within each level. The switches areorganized according to some predetermined structure within a givenhierarchical level which is reflected in the field of the identificationnumber corresponding to that level. Distributed routing can therefore beachieved by comparing a destination address of the wrapped data packetwith identification numbers of those hierarchical levels depending onthe location of the switch receiving the incoming packet. Switchesdirect/forward data packets by determining the direction of flow of theincoming packet based on comparing (or decoding) the destination addressof the packet with the relative position of the switch indicated by theswitch's identification number. As the result of thisdirection/forwarding operation, traditional routing methods areeliminated. Also, decoding operations eliminate routing in what wasdetermined, at a higher hierarchical level, to be an unused path.Decoding within lower levels can be restricted only to those switchesthat the higher levels point toward. Moreover, decoding can beaccomplished in a fairly rapid manner and need not occur if a comparisonat the higher level will direct the packet to another branch of lowerlevel switches. In this manner, each switch is assigned anidentification number based on its relative position within the network.Accordingly, the structured network can be thought of as having arelative or deterministic routing topography absent the detriments ofconventional routers. Hence the deterministic routing acts as adistributed router. Instead of performing routing functions at everynode in the network, the distributed router performs incremental routingfunctions at every node and the data forwarding function is achievedacross the entire network.

Within the structured network is at least one switch and, preferably,numerous switches interconnected to form an intranet, an internet, or acombination of both. The switches can be classified as an end switch, apass-through switch, or an intermediate switch. The end switches arethose that are configured adjacent termination devices and are used toperform protocol wrapping functions as packets of data enter thestructured network, or strip protocol used by the structured networkwhen packets exit the network. The end switches also perform a routingfunction similar to intermediate switches or pass-through switches. Theend switches, intermediate switches, and pass-through switches can beconfigured in hardware to be substantially the same, with only theprogrammed function being different based on where within the networkthe switches are placed. Each switch includes a minimum of onebi-directional port and a traffic manager which controls the port, orports. The number of ports is scalable in that there may be one or moreinput ports and one or more output ports arranged in variousconfigurations with the traffic manager deciding which packet receivedon an input port will be forwarded to which of the various output ports.The traffic manager includes a decoder and various buffers. The decoderperforms a comparison between the destination address and theidentification number of that switch based on the position of thatswitch within the overall structured network. The comparison anddecision are based on the comparison represented as an incremental stepin the distributed routing function (data forwarding function) of thenetwork.

A shared or distributed buffer may be placed within the data flow pathto receive a packet and to forward that packet to the appropriate outputport based on the destination address. Instead of forwarding the datainto a buffer, the data can be selectively forwarded across one or morebypass conductors coupled in parallel across the buffer. Thus, a modulewhich forms an intermediate switch or end switch can be configured withbypass operations applicable to a pass-through switch or a pass-throughnode, and the bypass paths are used to reduce latency in the switches.The buffer can also be contained with an end switch and configured withcontrol information. Through a series of read or fetch operations, thebuffer may be used to wrap an incoming packet and associated addresswith control information as well as an originating address of the endswitch. The fetch operations occur in rapid succession from a trafficcontroller of the traffic manager.

The structured network is one that is completely compatible withprotocols currently used in, for example, the OSI model. Specifically, aconventional address resolution protocol can be used to determine thelocation of a destination termination device by comparing an address(e.g., IP address) broadcast over the structured network. Once thedestination termination device is found, the end switch within thestructured network that is linked to the termination device can also befound. The end switch nearest the destination termination device can bethought of as an exit end switch whose identification number is known.When packets of information are to be sent to the destinationtermination device, it is known that those packets will be targeted tothe exit end switch and forwarding operations are achieved through thehierarchical decode operation using a series of compare operationswithin only select switches of certain hierarchical levels. The entryend switch adjacent the entry termination device will wrap the physicalmedia packet with an originating identification number of the entry endswitch. The packet can then be forwarded throughout the structurednetwork without having to perform any look-up operations.

When the packet arrives upon the exit end switch, control information ofthe structured network is stripped from the packet and a relativelysmall mapping table may be used to forward the packet to a relativelysmall number of destination termination devices selectively linked tothe exit end switch. If, however, only one termination device is linkedto the exit end switch, then mapping is not needed and consequently, notranslation need occur. The comparison or translation performed at theexit end switch occurs to bridge the gap between the structured networkand any external protocol or domain, hence the translation is a fullcomparison. For example, a full 32-bit random IP address can be used tolook-up a 48-bit Ethernet address of the termination device. Across thestructured network, instead of having to make a comparison of anincoming address against all switch identification numbers, thedeterministic network hereof need only compare a field of bits within acertain level of the network depending on where the entry end switch islocated within the hierarchical level. Further comparisons are performedonly on a field-by-field basis, each time lessening the number of fieldsneeding comparison. In instances where the structured network is quitesmall, comparison may be required only on a single field to determine,for example, whether to forward the packet left or right around a singleloop.

Only a fraction of the overall number of switch identification numbersare compared against the destination address and, more importantly, nolook-ups are needed in the forwarding operations. In particular, aself-compare operation occurs within each switch's decoder along theforwarding path. A result of the self-compare is a switch within onelevel pointing to another switch in another level based solely on thedecode operation. Only a small mapping operation may be needed by theexit switch when identifying which or the various destinationtermination devices connected to the exit end switch will receive data.The number of termination devices connected to the exit switch issignificantly smaller than the sum total of switches or nodes within anetwork. Importantly, the extent of the translation table associatedwith the exit end switch is local to that switch's location within thenetwork node and to the domain of the termination devices known to beconnected to it. The mapping table is completely independent of theinterior structured network and is based solely on a known relationshipbetween an exit end switch and termination devices connected thereto.This allows the mapping table to be static for the most part. Anychanges to this table are completely localized and do not requireupdating of other nodes and/or switches within the structured network.

The addressing mechanism thereby targets the exit end switch afterperforming a conventional address resolution protocol. When forwardingdata back from the exit end switch via the termination device connectedthereto, the forwarded data can be directed to the entry end switch viathe entry end switch identification number placed on the packet receivedby the destination termination device. Accordingly, in a reply to theoriginating packet, no look-ups are needed. Only a relatively smallmapping operation may be needed when forwarding the reply outside of thestructured network (i.e., when forwarding the reply packet back to theoriginating termination device). Thus, if more than one terminationdevice is linked to the end switches, only one mapping occurs whenrouting packets of data from the structured network, either to thedestination termination device or back to the origination terminationdevice. All routing functions are achieved by a field-by-fieldcomparison, much like a distributed routing operation.

The entry and exit end node identification numbers may be configured orre-configured such that they are recognizable to the termination devicesconnected thereto. For example, if the network is to receiveEthernet-based packets, then the entry and exit end switches areconfigured with identification numbers that are within the Ethernetaddress range. Since the network is structured, with successive nodesand/or switches being recognizable to each other, all other switches inthe network are in the same addressing domain. This allows forreplacement of the termination device address with the identificationnumber of the entry/exit end switch proximate to that device.Importantly, the termination device which forwards the destinationaddress can now recognize that the address (e.g., Ethernet address) ofthe termination device at the opposing end of the network is at theEthernet address of the end switch connected to that device.

At the entry end switch, the incoming termination device address (e.g.,Ethernet address) can be replaced with the Ethernet address of the entryend switch (i.e., the entry end switch identification number) in thedata packet. The targeted or destination termination device recognizesthat the data originating from the incoming termination device is thatof the entry end switch and now knows to forward all replies to theidentification number, or address, of that switch. When the replyreaches the originating entry end switch (i.e., exit end switch for thereply), the next highest level of protocol (e.g., JP address) address isused to identify 1 of possibly N termination devices attached to theentry end switch. This is a fairly simple reply translation, and theonly look-up needed during the reply operation. The relatively simplelook-up, like the request look-up preferably involves a small, staticlook-up table local only to the end switches. The only entries withinthe table are the next protocol level (e.g., IP within the protocolstack) relative to the physical protocol level (e.g., Ethernet) addressmapping.

A traditional hop used by conventional routers may involve replacementof a lower level (e.g., Ethernet) source and destination address of thepacket with the next destination Ethernet address. The next destinationEthernet address (or hop address) is determined by the routing tablewithin the convention router, said table is dynamically managed by thenetwork. The present switches replace the source address at the entryand destination address at the exit end switch, but not for purposes of“hop” routing. Instead, the pre-sent switches merely allows for morethan one termination device per entry-exit switch. If only onetermination device is coupled to an end switch, then addresstranslation, look-up or hop is not needed. Simply a 1-to-N or N-to-1mapping occurs. In a conventional sense, a hop is not used. Instead, theexit end switch simply performs a mapping of 1-to-N when exiting thestructured network, provided of course that N termination devices arepresent. If only one termination device is present, or if routingfunctions are present in multiple termination devices, then the endswitches need not perform any mapping whatsoever.

The traffic manager within a particular switch can be combined withother traffic managers of other switches to form a modular switcharrangement having any of numerous input and output port configurations.Additionally, each input port of the modular-connected traffic managerscan receive data at differing speeds and with differing formats orprotocols. The modular connection of traffic managers can form anoverall switch that is compatible with dissimilar protocols andtransmission speeds for use in any desired network connection ormultiple network connections. For example, the input port attributedwith a first traffic manager can receive 1.0 gigabit Ethernetinformation, whereas another input port attributed with another trafficmanager can receive 5.0 gigabit fiber optic information. Thus, eachtraffic manager includes buffers which not only receive and temporarilystore packets, but also are used to interface with differingtransmission speeds of packets forwarded to the input port and packetsexiting from the output port.

Within a modularized, interconnected set of traffic managers andassociated ports, is a local bus which couples a control processor toeach of the scaled traffic managers. A single control processor cantherefore be used to receive diagnostic, monitoring, and controlinformation necessary to perform those functions upon one or more of theinter-linked traffic managers. The diagnostic, monitoring, and controlinformation can be sent across an optical fiber, a copper conductor, ora wireless medium to the control processor which will then forward theappropriate control signals across the local bus. The diagnostic,monitoring and control (“DCM”) signals may be transmitted to the controlprocessors and traffic managers using tie same network, resulting in anin-band signaling or more optimally, the processors and traffic managerscan use the DMC signal for out-of-band signaling.

For example, the traffic managers can be programmed or configured whenthey are installed within the network and re-configured from acentralized location at a later date via a transceiver and the controlprocessor. Reconfiguration performed in conjunction with self-testingoperations can determine historical traffic congestion areas of thenetwork to allow the network to adapt and reroute packets away from thecongested areas. Rerouting can occur either by configuring the trafficmanagers in those suspected areas or broadcasting a reconfigurationsignal from the centralized locations. Importantly, however, the DMCsignals sent to the control processor, and the control processor andlocal bus interface can remain entirely outside the data flow path. Dataflow does not depend on, and therefore is not slowed by, access to andfrom the control processor. Once the control processor has performed itsfunction, further access thereto is not needed.

According to one embodiment, a communication network is provided. Thecommunication network is a structured network with distributed routingfunction comprising a plurality of interconnected switches. To enabledistributed routing, each switch includes an identification numberbifurcated into several groupings of bits, or fields. A first groupingof bits helps identify a first switch for receiving data of the networkprior to a second grouping of bits identifying a second switch forreceiving data from the first switch. The first switch can be consideredas being within a first hierarchical level and the second switch can beconsidered within a second hierarchical level. The first and secondhierarchical levels are not necessarily the highest level and second tohighest level, but are simply two levels within the overall hierarchy. Adecoder within the first switch can compare an address of the forwardeddata or packet with the first grouping of bits if the address originatesfrom a switch within a hierarchical level dissimilar from the firsthierarchical level. Thus, the originating address is either in ahierarchical level above or below the first hierarchical level. The samecan be said regarding a decoder within the second switch and itscomparison function.

The first switch, or first set of switches within the first level, areconnected upon or between a first set of loops that are associated witha first set of network nodes. Likewise, the second switch, or second setof switches within the second level, are connected upon or between asecond set of loops that are associated with a second set of networknodes. According to one example, at least one network branch may beterminated at both ends by a switch within the first set of switches anda switch within the second set of switches to enable coupling of thefirst set of network nodes to the second set of network nodes to providea selectable routing path. The network nodes and network branches can bethought of as extending at least partially between terminating devicesto form a data flow path therebetween.

According to another embodiment, the structured network can bemodularized. The modular network includes a set of switchesinterconnected across at least a portion of the network. A singlecontrol processor is also provided having a local bus extending betweenthe control processor and each of the set of switches. The local bus isadapted to receive from the control processor diagnostic, monitoring orcontrol signals. The control signals may include signals used to, e.g.,reconfigure an identification number for at least one of the set ofswitches to change routing of data or packets through those set ofswitches. The control processor can receive wireless or wired (opticalor solid conductor) communication from a transceiver placed remote fromthe control processor.

According to still another embodiment, the structured network mayinclude more than three nodes and three branches. Only one switch withinone node may be used to perform a single 1-to-N address mapping as thedata traverses the entire routing network and is forwarded to theselected one of N termination devices with no routing look-ups in theinterim. The mapping can be performed by a selection device, such as forexample a multiplexer or router, and the mapping is used to select onlybetween multiple termination devices, and not between ensuing nodesand/or switches within the network.

An addressing mechanism is contemplated for use within the network. Thenetwork thereby includes an entry end switch and an exit end switch.Both entry and exit end switches are selectably coupled to a pluralityof termination devices, one of which is an exit termination device ordestination termination device to which one or more packets arecurrently being sent. Between the exit and entry end switches are aplurality of intermediate switches. The packet is compiled by the entryend switch to contain a destination address of the exit end switch. Thepacket is forwarded through the plurality of intermediate switches, witheach intermediate switch having an identification number which pointsthe packet to a successive one of the plurality of intermediate switchesand finally to the exit end switch. The exit end switch performs thesingle mapping translation in order to forward the packet solely fromthe exit end switch to the exit termination device. Thus, whileaddressing within the structured network may be unique to that network,addressing outside of that network remains compatible with existing OSIlayer protocols applicable to TCP/IP, SONET, and/or Ethernet, forexample.

Yet further, a method is contemplated for routing data. The methodincludes compiling a packet comprising a destination address of the exitend switch and a source address of the entry termination device, andthereafter forwarding the packet from the entry termination device tothe entry end switch. While maintaining the destination address,updating the source address to the address of the entry end switch whileforwarding the packet from the entry end switch to the exit end switch,exclusive of look-up operations in the interim. While maintaining thesource address, updating the destination address to the address of theexit termination device while routing the packet from the exit endswitch to the exit termination device.

Before compiling the packet, an address resolution protocol may bebroadcast from the entry termination device to the entry end switch, andthereafter to the exit end switch for finding the location of the exitend switch relative to the exit termination device. Within each switchis a traffic manager. The traffic manager may include a trafficcontroller which dispatches a series of read operations to memorycoupled within a data flow path between the input and output ports ofthe switch. Thus, the memory may include control information placedtherein during a configuration cycle. The memory may also temporarilystore packets of data dispatched from the input port. The trafficmanager reads the control information and the packets of data in apredefined sequence so as to compile a wrapped packet that can then beforwarded to the output port.

The memory comprises any media which can receive packets of data andthereafter transfer those packets. The memory may involve a buffer,comprising semiconductor memory, wherein the memory is coupled to a busacross which packets of data are forwarded. The memory is responsive toa control signal forwarded across a bus separate from the bus thattransfers packets. Thus, the bus represents a routing path of thenetwork. The traffic controller works in conjunction with memory,similar to a compiler, for reading packets of data from memory andwrapping that data with control information stored in another section ofthe memory. In addition to it managing traffic flow through the switch,the traffic controller also functions to control the allocation ofvarious resources such as ports, bypass paths and buffers within theswitch.

In addition to the memory (or buffer) a conductor may be coupled inparallel across the buffer. A configuration register associated with thetraffic manager may be programmed to select routing of the data flowpath across either the buffer or the conductor depending on theavailability of the output port.

The method for wrapping a packet of data may therefore includetemporarily storing a packet of data in memory located within the flowpath of the packet. A set of read operations can be dispatched to memoryfor reading various addresses (destination and origination addresses),control information, and the temporarily stored packets, in order toform at least a portion of a wrapped data packet.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects and advantages of the invention will become apparent uponreading the following detailed description and upon reference to theaccompanying drawings in which:

FIG. 1 is a diagram of a set of nodes within a network configuredbetween termination devices;

FIG. 2 are diagrams of a node configured according to a loop,multi-loops, multiple interconnected multi-loops or point-to-pointtopography, each configuration having a set of switches or modulesinterconnected with one another between loops or along a loop orbackbone;

FIG. 3 is a block diagram of a switch employed as either anintermediate, pass-through or end switch, each of which includes atraffic manager;

FIG. 4 is a block diagram of the a modular implementation of severaltraffic managers grouped together as modular building blocks accordingto a particular application and linked by a local bus extending from acontrol processor;

FIG. 5 is a block diagram of several switches coupled to a loop, whereinone switch is configured with other switches to provide added connectionversatility between external ports of the switch or grouping ofswitches;

FIG. 6 is a block diagram of a traffic manager comprising a trafficcontroller linked to buffers and decoders placed within the datatransmission path of the network;

FIG. 7 is a block diagram of the various buffers of FIG. 6 coupled in ashared arrangement between various external ports of the trafficmanager, according to one embodiment;

FIG. 8 is a block diagram of the various buffers of FIG. 6 distributedas dedicated buffers within each data transmission path betweenrespective external ports of the traffic manager, according to anotherembodiment;

FIG. 9 is a switch identification number and/or switch address packetforwarded through a structured hierarchical network to enable fastdecode of bit groupings (or fields) on a field-by-field basis accordingto the hierarchical, relative placement of switches within levels of thenetwork;

FIG. 10 is a logical diagram of nodes and associated switches arrangedwithin levels, each level indicating a field of bits unique to switcheswithin that level;

FIG. 11 is a state diagram of a fast decoding algorithm used to identifya routing path through the network of hierarchically placed switches;

FIG. 12 is a block diagram of end switches placed on opposing ends(i.e., periphery) of the structured, hierarchical network, each endswitch is shown linked to at least one termination device;

FIG. 13 is a diagram illustrating resolution of an end switch addressrelative to a targeted termination device, and the routing of datathrough the entire structured network without involving a hop or look-upoperation, except for a relatively small mapping to possibly N number oftargeted termination devices;

FIG. 14 is a diagram illustrating a buffer of the traffic manager withinan end switch, wherein the buffer is placed within a data path andcontains wrap information to be appended to data as it traverses thebuffer;

FIG. 15 is a state diagram of a sequence of reads issued to the bufferof FIG. 14 from the traffic controller for appending or wrapping thedata as it traverses the buffer;

FIG. 16 is a block diagram of a selector and various multiplexers whichform at least a portion of the decoders shown in FIG. 5, wherein theselector and multiplexers route data either directly between ports orbetween ports via buffers depending upon the availability of thetargeted port; and

FIG. 17 is a block diagram of a packet wrapped in accordance with thesequence of read cycles shown in FIG. 15, and forwarded across thestructured hierarchical network.

While the invention may be modified and have alternative forms, specificembodiments thereof are shown by way of example in the drawings and willherein be described in detail. It should be understood, however, thatthe drawings and detailed description thereto are not intended to limitthe invention to the particular form disclosed, but on the contrary, theintention is to cover all modifications, equivalents and alternativesfalling within the spirit and scope of the pre-sent invention as definedby the appended claims.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Turning now to the drawings, FIG. 1 illustrates a communication network10. Network 10 includes an interconnection of subnets linked by nodes12. Accordingly, network 10 can be thought of as one or more intranetsinterconnected with one another, or interconnected via an internet.

Each node 12 can be thought of as embodying a subnet or a plurality ofinterconnected subnets. Select nodes 12 a and 12 b can be used toreceive input or output data forwarded via termination devices 14.Termination device 14 includes any device which can forward input dataor receive output data, popular forms of such input devices include atelephone or computer.

FIG. 2 illustrates exemplary forms of node 12 and, more specifically,modules or switches 16. Node 12 c illustrates one example of a nodecomprising switches interconnected about a ring topography, oftentimesreferred to as a “loop”. Coupled to termination device 14 a is an endswitch 16 a, and coupled to end switch 16 a via the loop areintermediate switches (or pass-through switches) 16 b and 16 c,respectively. Node 12 d illustrates a segment topography. As such, it isrecognized that a node or subnet can include either a backbone or ringtopography, depending on the desired application. The various nodes 12can be classified as single nodes or multi-nodes, each of which can bean end node, a pass-through node or an intermediate node depending onwhere within the network they are arranged. The various switches withineach node can also be classified as an end switch, a pass-through switchor an intermediate switch based on their position within the networkand/or within a node of the network. Further illustrated by node 12 d isthe interrelationship between an end switch 16 a, or anintermediate/pass-through switch 16 b/16 c. More specifically, an endswitch can be configured solely as an end switch, or as a combination ofan end switch and pass-through switch, or as an end switch, pass-throughswitch and intermediate switch, or any combination thereof. Thus, theswitch modules can be generic with specificity given duringconfiguration based only on their position within the overall network.The modules are considered generic mostly in hardware, with softwaremodifications used to effectuate their difference in placement. Forexample, an end switch may appear in hardware similar to an intermediateswitch, possibly with the only difference being the function of thetraffic controller as programmed within the configuration registers. Itis understood that an end switch or intermediate switch may accessphysical media between termination devices or subnets, respectively.

Node 12 e illustrates two multi-loop combinations of switches, themulti-loops are indicated as reference numerals 20 a and 20 b. Thevarious loops of each multi-loop 20 is shown interconnected by anintermediate switch 16 b, and the multi-loops 20 a and 20 b areinterconnected by intermediate switches 16 b, as shown. It may be thatone or more intermediate switches of a node are configured off the loop,as shown by reference numeral 18. Accordingly, it is to be noted thatswitches 16 can have almost any number of input and output ports, andcan be configured either to wrap an incoming packet, strip an outgoingpacket, and/or pass-through the packet with or without buffering,depending on where the switch is in relation to the network topographyor termination devices.

Each switch can be used to forward or route incoming packets received onan input port to one or more output ports. The incoming packets can bereceived over any type of media, including wired media or wirelessmedia. FIG. 3 illustrates an exemplary module configured as switch 16.Traffic manager 22 serves many functions, one of which is to optimallyroute packets of data between input and output ports. The number ofinput and output ports can vary and the interconnection between certaininput ports and certain output ports can also vary depending on theconfiguration of switch 16. Switch 16 may be called upon to interfacewith a different physical media than the loop protocol by using aPhysical Media Interface (“PMI”) 24. PMI 24 performs many functions, oneof which includes the MAC function of moving data over physical hardwareconductors based on the physical address on each network interface cardwithin the computer termination device, and another of which is tosynchronize the packets of data being sent or received. If switch 16 isnot used to convert between OSI layers, then the wrapped packet (e.g., aphysical media packet wrapped with higher domain protocols) may bedirectly sent through switch 16 to the appropriate port. PMI 24 is shownin dashed line to indicate their presence only when conversion is neededto or from the dissimilar physical layer protocols. For example, PMI 24may be used to interface between a wire (i.e., copper) conductorphysical media and fiber optics. PMI 24 may also be used to detect avalid packet, serialize/de-serialize the packet, and perform other basicfunctions associated with traditional MACs.

FIG. 4 indicates the modularity by which multiple traffic managers 22can be interconnected to a control processor 24 via a local bus. Thefunctions of control processor 24 and its associated local bus arecompletely separate from and outside the data communication path of theforwarded packets. Thus, packets are received by input ports, shown asport A and are disbursed to output ports, shown as port B or port C.Importantly, the incoming packets on port A₁ can be forwarded at adissimilar speed and possibly within a different protocol from that ofpackets forwarded across port A₂. As shown, packet speeds for port A₁may be 1.0 Gb/s, whereas speeds across port A₂ may be 2.5 Gb/s, forexample. The incoming packets on port A₁ can be forwarded to port B₁ orport C₁, while incoming packets on port A₂ can be forwarded to port B₂or port C₂, etc. Alternatively, packets from port A, port B, or port Ccan be forwarded back to itself. Traffic managers 22 can each be formedon a printed circuit board 26 separate from each other. Thus, eachtraffic manager 22 may be formed on a single integrated circuit or a setof integrated circuits interconnected upon a respective printed circuitboard. The various printed circuit boards may each be connected to amotherboard 28, if desired. Formed on motherboard 28 may be controlprocessor 24. In one embodiment, motherboard 28 can be a back panelwhile control processor 24 can be one of the boards mounted onto themotherboard. In yet another embodiment, control processor 24 can belocated in a chassis separate from the motherboard or at a locationdistal from the chassis into which the motherboard is configured. One ormore printed conductors, cables or wireless medium may extend fromcontrol processor 24 to each of the various integrated circuits whichform traffic managers 22. Those printed conductors are formed accordingto well-known board manufacturing techniques. Depending on the desiredbandwidth, the number of conductors associated with the local bus canvary. According to one example, the local bus can follow the PCIstandard.

It is desired that each traffic manager be configured during assembly ofthe network. That is, each traffic manager can include programmablelogic and, more importantly, non-volatile memory. When programmed, thetraffic manager will maintain its programmed status unless it isreconfigured. The traffic managers are therefore configurable usingknown program techniques usable with, for example, firmware, suchtechniques include programmable read only memory (“PROM”), programmableregisters from non-volatile memory, fuses, anti-fuses, etc.

The traffic manager configuration will be maintained unless the networkis reconfigured. Reconfiguration can take place if, for example, trafficcongestion is discovered in a select region of the network.Alternatively, reconfiguration can occur when the network is changed orexpanded. Still further, reconfiguration might occur when a section(e.g., subnet) of the network is taken down or deactivated for variousreasons. In this instance, one or more traffic managers can bere-configured in the field or, alternatively, those traffic managers canbe selectively re-configured using a broadcast technique. In particular,a transceiver may be used to transmit reconfiguration signals to controlprocessor 24, whereby processor 24 will dispatch the appropriatereconfiguration signals to one or more traffic managers connected to thelocal bus. In this manner, multiple traffic managers can be scaled tomeet a particular application of a switch having input and output portscarrying packets transmitted at dissimilar speeds and/or dissimilarprotocols. An intermediate switch can be linked between subnets, wherebycertain subnets involve packets transmitted at different speeds fromthose of other subnets, and by interconnecting multiple traffic managerswithin an overall motherboard 28 configuration, an intermediate switchformed by multiple traffic managers can accommodate this, as well asother applications.

FIG. 5 illustrates one example of switch modularity. Illustrated is aloop 30 having respective ports of switches 16 connected to that loop.Loop 30 may consist of one or more optical pathways, or metalconductors. Each switch 16 may have one or more input ports as well asone or more output ports. Switch 1 (SW₁) illustrates a Y-portconfiguration, whereas switch 2 (SW₂) illustrates a star-portconfiguration. Switch 3 (SW₃) is shown scaled with multiple trafficmanagers, each having at least two ports, one being an input port andthe other being an output port. Coupled between switches may be adiagnostic-monitoring-control (DMC) network. DMC network includes anywired or wireless communication network that can selectively forwarddiagnostic, monitoring, and/or control information to a traffic managerat the various locations of the switches. The DMC network thereby allowsmodifications to the traffic manager function, wherein the DMC networkcan extend to all or a select few of traffic managers throughout thenetwork. DMC network communication is either separate from thestructured network flow path, or can use in-band signaling.

FIG. 6 illustrates traffic manager 22, shown in further detail. Trafficmanager 22 functions to direct incoming data to an appropriate outputport. It determines the output port for an incoming data packet based ona simple algorithm. The traffic manager is aware of its positionrelative to the network and its neighboring traffic managers or nodes.Based on this knowledge, the traffic manager determines the appropriateoutput port in accordance with the pre-determined algorithm. The trafficmanager 22 also interfaces between ports of different media, speed anddirection. After the output port assignment is made, the traffic managercan: (i) store the data in a local buffer if the incoming data is slowerthan the speed of the directed-to output port, until there is sufficientdata to sustain the speed of the output port, (ii) forward the datawithout an intervening storage if the output port is free or if theincoming data is at the same speed as the output port, or (iii) transferthe data through a FIFO type storage device when the incoming data iscoming at a faster rate than the speed of the output port. The trafficmanager 22 manages resource allocation, such as allocation of variousoutput ports and buffers, and the algorithms make decisions regardingallocation to reduce the latency through the traffic manager. A criticalflow path for achieving extremely low latency across the switch is toforward incoming data from a port to the output of the same port. Toaccomplish this, input processing logic of the traffic managerrecognizes this case and informs the logic within a couple of cycles tostart the data packet. To speed this process, the wrapped header has thenecessary information at the very beginning of the packet. Control logicenables the flow through path if the output port is free within a coupleof cycles and informs the output logic. Input logic pipelines the datapacket and strips some of the header. Output logic creates the strippedheader and starts sending the packet out. It then appends the incomingdata and continues the transmission of the packet. In a pipelineconfiguration involving multiple cycles, an example can be used toindicate how the traffic manager minimizes latency when undergoing aflow through condition. The sequence of transfers or cycles receivedbegin with a start of packet (cycle 1), followed by a first header(cycle 2), a second header (cycle 3), data 1 (cycle 4), data 2 (cycle5), data 3 (cycle 6), data 4 (cycle 7), etc., to complete sevenexemplary cycles. During the third cycle (e.g., the first cycle is whena start of packet arrives at the input logic), incoming logic signalsthe control logic that there is a flow through packet. During the sixthcycle, the control logic notifies the outgoing logic that a flow throughpacket is on its way and the outgoing logic sets up the start of packet(start of packet information remains fixed from packet to packet) andreceives header data from the incoming logic. The seventh cycleindicates incoming data being passed onto the output port through theoutput logic.

Traffic controller 22, shown in FIG. 6, includes one or more buffers, aswell as one or more decoders. In the example shown, the buffer isdistributed as two buffers 34 a and 34 b, and the decoder is distributedas three decoders 36 a, 36 b, and 36 c. Distribution of the buffers anddecoders depends in part on the configuration of the ports. In theexample shown in FIG. 6, a three-port configuration is shown. However,more than three ports and possibly only two ports can be used, whereinthe number of decoders and buffers would correspondingly change.

Each port is shown as a bi-directional port and thereby accommodatesfull-duplex dialogs. The physical media of port A may be different fromthat of port B or port C, especially if switch 22 is configured as anend switch or an intermediate switch. For example, decoder 36 a servesto decode addresses of an incoming packet across port A to ensure thatswitch 22 is to receive the packet. Traffic controller 38 can be used todecide whether that packet should be forwarded to output port B or portC via decoder 36 b. In many instances, the packet can be forwardeddirectly from port A to port B (or port C) or forwarded through buffer34 a. Similar to port A, port B and port C incoming packets can beforwarded to port A, port B, or port C via decoder 36 c. Trafficcontroller 38 includes control signals and address lines extending toeach of the buffers and decoders for effectuating optimal routing basedon the availability of the destination ports. Coupled in parallel acrossbuffer 34 b is a conductor over which packets can be sent instead ofsending those packets through buffer 34 b. Thus, incoming packets onport B or port C can be forwarded directly to port A, to port A throughbuffer 34 b, or directly to port B (or port C), as shown in the exampleof FIG. 6. A bypass conductor could also be shown coupled in parallelacross buffer 34 a; however, for sake of brevity and clarity in thedrawing, only one bypass conductor is shown. FIG. 6 illustrates athree-port (or Y) configuration. However, a different port configurationis contemplated with additional buffers, decoders, bypass conductors,etc., to effectuate any switch configuration and numerous ports of thatswitch in order to directly or indirectly forward packets from any giveninput port to any desired output port.

Within decoders 36 and traffic controller 38 are configurationregisters. The configuration registers may be configured from anIn-System Programming (“ISP”) tool used for configuring a ProgrammableLogic Device (“PLD”) or a Programmable Gate Array (“PGA”). Theconfiguration registers and therefore the traffic controllers andbuffers can be thought of as a PLD or a PGA. Alternatively, theconfiguration registers can be programmed from non-volatile memorypossibly associated with switch 22, or from the control processor viathe local bus. The configuration registers 40 receive configurationinformation, preferably during initiation of power to switch 22.Alternatively, registers 40 b may be formed as an SRAM. Still further,registers 40 may include a PROM or ROM permanently programmed by thenetwork installer. Contained within each register are bits used toenable certain ports in order to fix the forwarding of packets from oneport to another, predefined port. Alternatively, each register may beconfigured to select various ports and paths based on dynamic trafficconditions.

Within register 40 a bits may be programmed to enable transfer of allpackets from port A to port B, for example. Other bits programmed withinthe various registers include an identification number attributed tothat particular switch. Each switch within the network has acorresponding unique identification number. The identification numbersignifies the relative location of the node with respect to other nodesin the structured network hierarchy. The identification numbers of allswitches within the network contain bits bifurcated into fields and, asdescribed herein below, each field corresponds to a particular level. Adecoder which receives incoming packets can be configured by itscorresponding register to only decode a field of bits to which thatparticular switch has been attributed. In other words, if switch 22belongs to level 3, then decoder 36 a can only decode the destinationaddress of the incoming packet sent across port A within field 3 of themulti-field address. This ensures a fast decode operation andsignificantly enhances the throughput of data. If the decode yields acomparison, then decoder 36 a will forward the packet to the appropriatedecoder 36 b or 36 c depending on which port is configured as the outputport established within register 40 a, 40 b, 40 c, and 40 d.Alternatively, a decoder may be configured to decode all fields above itin hierarchical level, or one field above it, to determine if the packetbelongs to the current level. Further details regarding differingfunctions, configurations, and operations of switch 22 will be providedwhen discussing whether switch 22 operates as an end switch (entry endswitch or exit end switch), intermediate switch, or pass-through switch.

Referring to FIGS. 5 and 6 in combination, switch 1 (SW₁) can beconfigured as a pass-through switch, whereby ports B and C are coupledto corresponding loops, such that incoming data on one loop can be sentto input port B and back out to output port B on the same loop, oroutput port C on another loop. Thus, a pass-through switch may includeonly two ports, where the decoder adjacent the incoming packet will makethe determination on forwarding that packet to the output port. Anintermediate switch, configured as switch 1, switch 2, or switch 3includes corresponding decoders of each input port for determiningwhether the switch is being targeted and which output port is to receivethe forwarded packets, and further whether that packet will be sentdirectly or through a buffer based on configuration information withinthe incoming port decoder, or the availability of resources.

FIGS. 7 and 8 illustrate buffer 34 of a traffic manager being either acentralized buffer 34′ or a distributed buffer 34″. A centralized buffer34′ is used to receive and disburse packets of information from anyparticular input buffer to any particular output buffer. Accordingly, abuffer can be considered as any contiguous memory space, such as thatfound in semiconductor memory. A popular form of semiconductor memoryincludes single or multi-port RAM or DRAM (e.g., ZBT RAM or SDRAM).Buffer 34′ may include dedicated memory portions across which packetsfrom one port to another port are stored. Distributed buffer 34″ is onehaving buffers dedicated to storing packets of information sent betweenport pairs. Regardless of the configuration, it is appreciated that dataflow packets may be temporarily stored in main memory—either within aportion of a centralized memory or to a dedicated memory embodied uponone or more integrated circuits.

FIG. 9 illustrates the format of bits representing a switchidentification number 40. The same format is used as a destinationaddress of a wrapped packet forwarded through the structured,hierarchical network hereof. Each switch within the network contains aunique identification number programmed within the configurationregisters the switch's decoder and/or traffic controller. All switchesassociated with a particular level have a unique bit or set of bitsprogrammed within only one grouping of bits (field). In the formatshown, field N may include X number of bits which can thereforeaccommodate 2^(x) number of switches within level N of the structurednetwork. Similarly, level N−1 may have Y bits and there can be 2^(x)level N−1 groups and each of these groups in level N−1 can have 2^(y)number of switches. Given that field N corresponds with the highesthierarchical level, any routing beginning at that level entails decodingfield N address of the incoming data with field N identification numbersbefore decoding the next level (field N−1).

Referring to FIGS. 9 and 10 in combination, one example of a distributedrouting mechanism using structured hierarchical decode mechanism isprovided. The network 10 indicates three levels of possibly numerouslevels. Switches 16 are each configured with a unique identificationnumber within a field of bits applicable to that switch's level. Inparticular, the identification number is different within only one fieldattributed to switches X, and the identification number is differentwith another field attributed to switches Y. All other fields are don'tcare fields, or are irrelevant for comparing within that level. In theexample shown in FIGS. 9 and 10, communication from a termination device14 a to 14 d is forwarded to a series of compare operations. First, theaddress of a packet sent from termination device 14 a, at level N−4, iscompared with an identification number and, more specifically, a fieldof bits in level N−3 and higher. If the comparison does not yield amatch, then it is determined that the packet must be forwarded fromswitch A1 in level N−4 to the next higher level. When a compare offields N−2 and higher yields a match, the match is then checked againstall nodes at that level and forwarded to the appropriate switchidentification number (e.g., switch A2) that yielded a match in levelN−3. It is known that termination device 14 a is coupled to switch A−1and, therefore, decode need not take place at level N−4. Secondly,another decode must occur at the next higher level (level N−2 ) todetermine if the address forwarded from termination device 14 a is to berouted to a switch in level N−2. If the comparison does not yield amatch, then it is known that routing need not occur to the next highestlevel. The routing algorithm performs a comparison of the next lowerlevel. Knowing the highest level of routing is currently at switches Xwithin level N−3, the next comparison of the packet address is performedon switches in level N−4. If a match results, then that match isidentified as a particular switch (e.g., switch A3). The comparison ordecode process continues onto the next lower level, level N−5, todetermine if further routing is needed. If the address at the next lowerlevel of fields compares with an identification numbers in the nextlower level field (level N−5 ), then it is determined that the routingmust continue to a particular switch A4 that yields the comparison. Theterm “routing” is used in the sense of forwarding data packets across anetwork, from switch-to-switch, and should not be construed as involvinga router. Instead, the routing herein merely refers to an incrementalstep in the distributed routing mechanism of the overall network and isused by a module to forward packets among hierarchical levels based on adecode comparison.

As shown in FIGS. 9 and 10, and further illustrated in FIG. 11, theforwarding or incremental routing algorithm operates solely upon thedestination packet address and identification numbers stored inregisters of each switch. Registers within the input/output portdecoders and traffic controllers are called upon by the decoders toperform a comparison with the incoming addresses without need forperforming a look-up operation. Importantly, decode need only beperformed on one or more number of fields within a plurality offields—that field corresponding with where the prior comparison occurredwithin the overall hierarchical structure. Knowledge of the terminationdevice whereabouts relative to the entry and exit end switches is aprerequisite to the present fast decoding algorithm. The mechanism fordetermining termination devices relative to end switches will bediscussed herein below when performing a broadcast operation of the IPaddresses across the structured network to all the various terminationdevices coupled to that network.

FIG. 11 illustrates a fast decoding state diagram 42 of distributedrouting mechanism. Depending on which level a termination device isconnected, decoding occurs at all higher levels, beginning with the nexthigher level field of bits. An entry end switch can mark a bit in thecontrol word that signifies which level the switch is in, and then otherswitches in that level can compare only the field attributed to thatlevel. The intermediate switches can perform the same function whenforwarding the packet to the next level—either a higher or lower levelthat is setting a bit or bits in a control word signifying a match oflevels. In the example shown in FIG. 10, decoding occurs in level N−3for an origination termination device 14 a coupled to a switch in levelN−4. State 44 is continued for however many times it takes to yield anon-compare (!COMPARE). Once a non-compare occurs, then it is known thatrouting must now proceed, or possibly stop, at the level just below thelevel that yielded a non-compare. In the example of FIG. 10, comparisonstopped when level N−3 yielded a non-compare—indicating that all higherlevels greater than level N−3 will not receive the forwarded packet.Beneficially, all higher levels and derivatives from those higher levelswhich are outside of switch A2 shown in FIG. 10, need not undergo acomparison function. Comparisons at each level can be comparisons at allhigher levels. Once a higher level compare is true, then the lower levelcomparisons are performed. Entry end switches or nodes can mark a bit ina control word which signifies the level and the remaining switches ornodes in that level may compare only that level of bits. Intermediatenodes or switches can do the same when forwarding the packet to the nextlevel.

Once the highest level is identified for forwarding the packet, decodenow continues down the hierarchical levels in succession, as shown bystate 46. Comparisons for those levels are performed until a lower levelswitch identification number favorably concurs with the destinationaddress. That switch is identified as an exit end switch that isselectably coupled to the target or destination termination device 14 d,shown in FIG. 10.

The successive decode of bits within only a certain field, andprogressing field-by-field across the incoming address andidentification numbers minimizes the number of comparisons needed andthe number of switch identification numbers being compared against. Thisrelatively fast decode operation performs distributed routing functionwithin the structured, hierarchical network, with the benefit ofperforming incremental routing by decode operations only on the field ofinterest and ignoring all other fields at any given point. The conceptof being aware of all switch whereabouts within the network is ofprimary importance when forwarding the packets. This awareness in thestructured network is beneficial not only in a hierarchical network butalso in single level of hierarchy such as local loops. For instance,based on the identification number indicating where the switch islocated, and the destination address, the packet can be sent around thelocal loop among the interconnected switches, either right of left.

FIGS. 12 and 13, in combination, show path routing outside of thestructured, hierarchical network. That is, while structured positioningand fast decoding performs distributed routing within the network,identification of a routing path to and from termination devices must beestablished. Coupled to termination devices 14 a and 14 b are endswitches 16 a and 16 b, shown in FIG. 12. If device 14 a is theoriginator of a packet, then end switch 16 a can be considered an entryend switch. If the incoming packet includes a destination address totermination device 14 b, then device 14 b is considered the targeted ordestination termination device, and end switch 16 b is considered anexit end switch. From this example, FIG. 13 illustrates firstly, amechanism for identifying the relationship between termination devicesand end switches (particularly when there are multiple terminationdevices per end switch) and, secondly, how the incoming packet is routedfrom the originating termination device to the destination terminationdevice 14 a and 14 b, respectively.

Referring to FIG. 13 in more detail, an Address Resolution Protocol(“ARP”) may be broadcast from termination device 14 a. The destinationaddress of the broadcast ARP is to each and every node within thenetwork, and continues on until all nodes have received the resolutionprotocol, as shown by block 50. Contained within the resolution protocolmay be an IP address of destination termination device 14 b. If so, thendevice 14 b replies, as shown in block 52. That reply represents an ARPanswer forwarded back across the network and eventually to theoriginating termination device 14 a. Based on the broadcast of addressesand ensuing replies, the positions of termination devices relative toend switches can be determined based on the IP address of thosedestination and origination devices. Accordingly, the address atdestination device 14 b is found based on its IP address beingbroadcast, as shown by block 54. That address and its configuredlocation relative to end switch 16 b will thereby resolve theirconnectivity relationship, as shown by block 56.

Blocks 50-56 illustrates a mechanism for determining the relativelocation of termination devices, nodes, and switches according towell-known address resolution protocols. Accordingly, the technique ofbroadcasting an address (e.g., Ethernet address) across the network toresolve locations hereof is backward compatible with existing legacylocation mechanisms known to the skilled artisan. However, it is fromthe resolved locations that a packet can be quickly transferred betweenlocations external to the pre-sent structured network (i.e., terminationdevices or a non-structured, conventional network).

Transfer of a wrapped packet from an originating termination device 14 ato a destination termination device 14 b is shown in block 58, andentails mechanism 60. Other protocols or domains outside of IP can bewrapped using the present technique, and therefore FIG. 13 is merely anexample of one way in which a generic protocol (e.g., IP can bewrapped). Referring to the examples of both FIGS. 12 and 13, referencenumeral 60 illustrates an incoming IP packet wrapped by end switch 16 aand simply having a source address (SA) of origination terminationdevice 14 a and a destination address (DA) of exit end switch 16 b. Thewrapped packet is shown as reference numeral 62. More specifically,entry end switch 16 a merely wraps an existing packet with a knownidentification address of an exit end switch, known in its relationshipto a destination termination device by virtue of the address resolutionprotocol. Moreover, the destination termination device address iscontained within the IP packet of wrapped packet 62.

Before sending the wrapped packet onto the structured network, entry endswitch 16 a converts only the source address from that of terminationdevice 14 a to that of the entry end switch 16 a, if multipletermination devices are attached to the end switch, as shown by thewrapped packet 64. Knowing the source address as the entry end switchaddress proves beneficial when the destination termination devicereplies to the originating termination device, as will be discussedherein below. The destination address and the IP packet remain the same,as illustrated by comparison between wrapped packet 62 and wrappedpacket 64.

Once the wrapped packet is received upon the exit end switch 16 b, onlythe destination address changes from exit end switch 16 b to destinationtermination device 14 b especially if there are multiple terminationdevices attached to end switch 16 b. The source address, however,remains the same as that which was changed when the packet is forwardedinto the structured network. Given that the destination address istermination device 14 b, exit end switch 16 b performs the single, andonly look-up, needed by the entirety of the structured network. Asdefined herein, look-up is a deterministic, static, 1-to-N mapping to alocalized device from among many such devices.

Mapping proceeds from the destination address placed on the wrappedpacket by the exit end switch 16 b in order for the IP packet to bedirected to the appropriate termination device by comparing the IPaddress within that packet with the appropriate IP identification numberof a possible x number of termination devices, as shown by translationtable 68. Mapping table 68 may be formed within memory of end switch 16b or, alternatively, a selection unit such as multiple multiplexers, orany other form of routing based on selection signals. Mapping isperformed by comparing the destination address (EP address) withinwrapped packet 66 with the IP identification number stored in anappropriate termination device T_(x). When the comparison yields amatch, the packet is forwarded to the appropriate termination device(e.g., termination device 14 b as opposed to numerous other terminationdevices connection to end switch 16 b ).

Any reply to the initial forwarded address can be sent back across thestructured network based on the format of wrapped packet 66. Morespecifically, the source address of the reply remains the address oftermination device 14 b, however, the destination address is theprevious source address—i.e., the address of entry end switch 16 a. Inthis manner, reply information is made similar to the initial forwardedinformation. Regardless of the initial request or a subsequent response,the packets of data are routed to the opposing end switch. Inparticular, information from termination device 14 a is directed to exitend switch 16 b, while reply information from termination device 14 b isdirected to entry end switch 16 a. The source address is therefore saidto change whenever a packet enters the network, however, the destinationaddress remains the same. The same applies on a reply. Whenever a packetexits the network, only the destination address changes with the sourceaddress remaining the same. This ensures that when traversing the entirestructured network between termination devices, only a single mapping ortranslation occurs when forwarding the packet outside the structurednetwork to one of a plurality of termination devices. Intermediateswitches and/or nodes of the network do not perform conversion of thedestination or source addresses, nor do they perform any look-up.

The look-up arises from a relatively small table, known alternatively asa translation table. Importantly, the number of termination deviceslinked to the exit end switch on a request operation (or an entry endswitch on a reply operation) is relatively small. It will be appreciatedthat the structured network can form a subnet within a larger,conventional network. In this manner, the hierarchical decoding andsingle mapping applies to data traversing the structured network, thatdata being packets which are forwarded across multiple subnets where onesubnet may be dedicated to the structured network. Accordingly, thestructured network can form the entire network of subnets (intranets) aswell as the internet between one or more subnets or, alternatively, canform only a portion (one or more subnets) of a conventional network.Regardless of which portion of the entire inter- and intra-network isformed by the structured network, or whether the structured networkcomprises the entire network, only one look-up (defined as a mappingfunction) need occur as packets exit the structured network tobeneficially improve overall packet throughput. Absence of traditionalrouting in the structured network greatly enhances the speed at whichpackets are forwarded to their appropriate destination.

FIG. 14 illustrates a memory area within a memory (or buffer) of an endswitch. Memory area 70 may be bifurcated into regions, some of whichreceive certain packets placed in a defined order within those regions.That is, the first packet (PK1) is forwarded into and placed within adefined portion of buffer 70 before the second packet (PK2) is placedand stored. Buffer 70 therefore serves as a FIFO buffer, for example.The incoming packets are wrapped as they leave buffer 70 by attributingwrap information to a particular packet before forwarding the wrappedpacket from the buffer. Wrap information is stored in another region ofbuffer 70 and can include but is not limited to the information shown intable 72. That information may comprise a grouping of bits indicating astart of packet (SOP). Another group of bits are used to indicate theoriginating identification number of the originating switch (ORIG IDADDR). Another set of bits may be dedicated to general controlinformation, such as the level of hierarchy, length of packet header (orfooter), packet types, etc. Yet another group of bits are dedicated toforwarding a null pattern used possibly to indicate spacing betweenwrapped packets. Yet another set of bits may be used to indicate anerror in the packet transmission. It is recognized that the wrapinformation 72 can include numerous other bits dedicated to achievingmany dissimilar functions, only a small grouping of which is shown bythe examples provided. The manner in which the wrap information iswrapped about a packet is further described in reference to FIG. 15.More specifically, description of FIG. 15 is applicable when referringto FIG. 15 in conjunction with FIG. 6.

FIGS. 6 and 15 illustrate traffic controller 38 operating as a compilerwhich performs a series of read operations upon a buffer. Those readoperations occur to fixed regions of that buffer so as to read bits fromthose regions in a particular sequence so that the resulting wrappedpacket is serially fed from the buffer in a particular order. As such,the compiler part of the traffic controller can be thought of ascontaining a state machine of sequential logic which performs a firstread of a null pattern 74 indicating the end of the prior wrapped datapacket. The read null pattern is contained within the wrap informationof the buffer, as well as other wrap information thereafter beginningwith the start of packet at state 76. The destination address of thestructured network protocol is thereafter read at state 78, and theoriginating identification address is read at state 80. Controlinformation within the wrap information region of the buffer is thenread at step 82, and so forth for the remaining read operations 84, 86,and 88 to complete the wrap of a packet from the buffer. Each read orfetch occurs to a specific location within memory to routinely drawnwhatever information is present in that location. Thus, the wrapinformation is configured in specific regions of the memory so that theycan be drawn from those regions in the order specified by the statemachine of FIG. 15.

The switch which has a traffic controller performing the various readoperations is considered an end switch and, more specifically, an entryend switch. The entry end switch wraps the incoming IP packet withvarious wrap information needed to transfer that IP packet across thestructured network and, additionally, to a termination device outside ofthe structured network. Therefore, the structured network is backwardcompatible with all other existing networks, with the wrap informationsimply subsuming the pre-existing wrap information. The entry end switchadds the wrap information and exit end switch removes or strips the wrapinformation, as shown in FIG. 17.

FIG. 17 further illustrates bits added to and removed from an embeddedpacket (e.g., Ethernet packet). The wrapped packet 90 shown in FIG. 17is but one example of a packet format used by the structured network.There may be additional bits or field of bits added to the format, ifdesired. The entry end switch thereby adds the wrap information and theexit end switch removes the wrap information to yield only the embeddedpacket with starting and ending identifiers forwarded to a terminationdevice or to other non-structured subnets outside of the presentstructured network.

FIG. 16 illustrates various multiplexers 92 explained in conjunctionwith FIG. 6. Multiplexers 92 a and 92 b can form a part of decoder 36 b,while multiplexers 92 c and 92 d may form a part of decoder 36 c.Various enable (EN) signals can be sent from the traffic controllerwhich serves as an arbiter. B EN serves to signify when the output portB is available, whereas C EN is used to signify when output port C isavailable. Depending on whether select signal B EN or select signal C ENis asserted, packets from input port A, input port B, or input port Care forwarded to respective output ports B or C. In the example of FIG.6, FIG. 16 provides a corollary, in that signals upon input ports B andC can be directed either to output ports B or C, as well as output portA, depending on the status of select signals B EN, C EN, and A EN. It isappreciated that the example shown in FIG. 16 is used only for sake ofbrevity and clarity, as well as for consistency with FIG. 6. There maybevarious configurations possible as to how these ports can beinterconnected. There may be numerous other ports beyond port A, B, andC used in practical applications and, therefore, FIGS. 6 and 16 are onlyfor exemplary purposes only. The various enable signals may be fixedwithin corresponding registers during configuration, those registersinclude register 40, shown in FIG. 6. The enable signals can either bestatic or dynamically determined by traffic controller 38. A selector 94can further be used to forward data through a buffer output port A orbypass the buffer and place packets across a bypass conductor coupled inparallel with that buffer. The various enable signals, in combinationwith the selector 94, are used to send data either directly betweenports or between ports via buffers depending on the availability of thetargeted port. The desirability of selecting between whether a packetcan be sent directly to an output port or through a buffer is beneficialif the status of the output port is known. That will be dynamicallydetermined based on resource availability and a resource allocationalgorithm. The resource allocation algorithm will be determined by thecontrol registers configured through the local bus by the controlprocessor.

It will be appreciated to those skilled in the art having the benefit ofthis disclosure that the various embodiments herein are believed tocapable of performing fast and efficient transfers across a structurednetwork which either replaces or forms at least a portion of aconventional communication network. Various modification and changes maybe made as would be obvious to a person skilled in the art having thebenefit of this disclosure. It is intended that the following claims beinterpreted to embrace all such modifications and changes and,accordingly, the specification and drawings are to be regarded in anillustrative rather than a restrictive sense.

What is claimed is:
 1. A switch comprising: a traffic manager whichdispatches a series of read operations to a memory coupled within a dataflow path, wherein the memory includes a source address and adestination address of a pair of network nodes routably coupled withinthe data flow path; an input port and an output port, wherein the memorycomprises packets of data dispatched from the input port; and a decodercoupled to the input port for decoding only a single field of bitswithin a plurality of fields which comprise the destination address. 2.The switch as recited in claim 1, wherein the memory comprises controlinformation placed therein during a configuration cycle.
 3. The switchas recited in claim 1, wherein the traffic manager reads the controlinformation and the packets of data in a pre-defined sequence to form awrapped packet forwarded to the output port.
 4. The switch as recited inclaim 1, further comprising a plurality of terminating devices coupledto the output port.
 5. The switch as recited in claim 4, furthercomprising a decoder coupled to the output port for decoding thedestination address and wherein the decoder further includes a selectionunit that forwards data of the data flow path from the output port toone of the plurality of terminating devices.
 6. The switch as recited inclaim 5, wherein the selection unit is a router.
 7. The switch asrecited in claim 5, wherein the selection unit is a selection switch. 8.The switch as recited in claim 1, wherein the traffic manager comprisesconfigurable logic, and further comprises a configuration register whichcan be programmed to identify a structural location of the switch withinthe network.
 9. A communication network, comprising: a data flow pathextending along at least a portion of the communication network; and amemory placed within the date flow path and adapted for temporarilystoring data in one section of the memory and wrapping the data withcontrol information stored in another section of the memory beforeforwarding the data and the control information from the memory.
 10. Thecommunication network as recited in claim 9, further comprisinga-traffic manager coupled to dispatch a plurality of read operations tothe memory for drawing the control information and the data from thememory in a specified order.
 11. The communication network as recited inclaim 9, further comprising a decoder placed within the data flow pathfor directing the data flow path toward a destination terminationdevice.
 12. The communication network as recited in claim 11, whereinthe memory is further adapted for wrapping the data with a destinationaddress and a source address, both of which are temporarily storedwithin distinct sections of the memory that are different from thesections storing the data and the control information.
 13. Thecommunication network as recited in claim 12, further comprising atraffic manager coupled to dispatch a plurality of read operations tothe memory for drawing the destination address, the source address, thecontrol information and the data from the memory in a specified order.14. The communication network as recited in claim 13, wherein thedecoder is coupled to the data flow path for decoding only a singlefield of bits within a plurality of bit fields which comprise thedestination address.
 15. The communication network as recited in claim14, wherein the source address indicates a location of a first nodewithin the communication network, and wherein the destination addressindicates a location of a second node within the communication network.16. The communication network as recited in claim 15, wherein the firstand second nodes comprise intermediate switches arranged between anentry end switch coupled to a source termination device and an exit endswitch coupled to the destination termination device, and wherein thedata is forwarded from the first node to the second node without the useof look-up tables.
 17. The communication network as recited in claim 15,wherein the first node comprises an intermediate switch arranged betweenan entry end switch coupled to a source termination device and an exitend switch coupled to the destination termination device, wherein thesecond node comprises the exit end switch, and wherein the data issubsequently forwarded from the second node to the destinationtermination device without the use of look-up tables if no otherdestination termination devices are connected to the second node.
 18. Aswitch, comprising: an input port; an output port; a buffer and aconductor coupled in parallel within a data flow path between the inputport and the output port; and a configuration register containing bitsprogrammed to select routing of the data flow path across either thebuffer or the conductor depending on availability of the output port.19. The switch as recited in claim 18, wherein the configurationregister is contained within a decoder coupled between the input portand both the buffer and the conductor.
 20. The switch as recited inclaim 18, wherein the configuration register is contained within atraffic controller that is operably coupled to the buffer for selectablydisabling the buffer.